home *** CD-ROM | disk | FTP | other *** search
/ Animation How-To / Animation How-to CD.iso / PLY / CHAPTER4 / JELLYDIM / DMDVIEWS.BAS < prev    next >
BASIC Source File  |  1994-01-01  |  10KB  |  302 lines

  1. ' Diamond Data File Creator
  2. ' (c) Jeff Bowermaster, 1992
  3. ' Splat! Graphics
  4.  
  5. TYPE vector
  6.   x AS SINGLE
  7.   y AS SINGLE
  8.   z AS SINGLE
  9. END TYPE
  10.  
  11. DIM vertex(41) AS vector
  12. DIM red(16), green(16), blue(16)
  13.  
  14. ' set the screen up with pretty rainbow colors
  15.  
  16. SCREEN 12
  17.  
  18. scale = .02
  19. xoff = 200
  20. yoff = 320
  21.  
  22. WINDOW ((0 - xoff) * scale, (0 - yoff) * scale)-((639 - xoff) * scale, (479 - yoff) * scale)
  23.  
  24. FOR y = 1 TO 4
  25.     FOR x = 1 TO 4
  26.          colornum = x + ((y - 1) * 4) - 1
  27.          READ red(colornum), green(colornum), blue(colornum)
  28.          KOLOR = 65536 * blue(colornum) + 256 * green(colornum) + red(colornum)
  29.          PALETTE colornum, KOLOR
  30.          COLOR colornum
  31.     NEXT x
  32. NEXT y
  33.  
  34.  
  35. 'Rainbow Palette
  36.  
  37. DATA  0,  0,  0
  38. DATA 32,  0,  0
  39. DATA 42,  0,  0
  40. DATA 58, 16,  0
  41. DATA 63, 32,  0
  42. DATA 58, 56,  0
  43. DATA 16, 42,  0
  44. DATA  0, 30, 36
  45. DATA  0, 20, 40
  46. DATA  0, 10, 48
  47. DATA  0,  0, 63
  48. DATA 20,  0, 53
  49. DATA 23,  0, 29
  50. DATA 19,  7, 17
  51. DATA 50, 40, 45
  52. DATA 63, 63, 63
  53.  
  54. pi = 3.1415926535#
  55. rad = pi / 180
  56. p = .5
  57.  
  58. l1 = 1
  59. l2 = 2 ^ p
  60. l3 = 3 ^ p
  61. l4 = l2 / 2.5
  62.  
  63. g = 1
  64. d1 = 0
  65. d2 = -.2 * g
  66. d3 = -.495 * g
  67. d4 = -1.43 * g
  68. d5 = -1.87 * g
  69.  
  70. FOR f = 1 TO 8
  71.   a = 360 * f / 8
  72.  
  73.   vertex(f).x = l1 * COS(rad * a)
  74.   vertex(f).y = l1 * SIN(rad * a)
  75.   vertex(f).z = d1
  76.  
  77.   vertex(f + 8).x = l2 * COS(rad * (a + 22.5))
  78.   vertex(f + 8).y = l2 * SIN(rad * (a + 22.5))
  79.   vertex(f + 8).z = d2
  80.  
  81.   vertex(f + 16).x = l3 * COS(rad * (a + 45))
  82.   vertex(f + 16).y = l3 * SIN(rad * (a + 45))
  83.   vertex(f + 16).z = d3
  84.  
  85.   vertex(f + 24).x = l3 * COS(rad * (a + 67.5))
  86.   vertex(f + 24).y = l3 * SIN(rad * (a + 67.5))
  87.   vertex(f + 24).z = d3
  88.  
  89.   vertex(f + 32).x = l4 * COS(rad * (a + 67.5))
  90.   vertex(f + 32).y = l4 * SIN(rad * (a + 67.5))
  91.   vertex(f + 32).z = d4
  92. NEXT f
  93.  
  94.   vertex(41).x = 0
  95.   vertex(41).y = 0
  96.   vertex(41).z = d5
  97.  
  98. 'Top Left View
  99.  
  100. FOR a = 1 TO 8
  101.  
  102.     level1a = 1 + a MOD 8
  103.     level1b = 1 + (a + 1) MOD 8
  104.  
  105.     level2a = 1 + (a - 1) MOD 8
  106.     level2b = 1 + a MOD 8
  107.  
  108.     level3a = 9 + (a - 1) MOD 8
  109.     level3b = 9 + a MOD 8
  110.  
  111.     level4a = 16 + a
  112.     level4b = 17 + a MOD 8
  113.     level4c = 9 + a MOD 8
  114.  
  115.     level5a = 17 + (a - 1) MOD 8
  116.     level5b = 25 + (a - 1) MOD 8
  117.     level5c = 17 + a MOD 8
  118.  
  119.     level6a = 33 + (a - 1) MOD 8
  120.     level6b = 33 + (a) MOD 8
  121.  
  122.     level7 = 41
  123.  
  124.     LINE (vertex(level1a).x, vertex(level1a).y)-(vertex(level1b).x, vertex(level1b).y), a
  125.     LINE (vertex(level1a).x, vertex(level1a).y)-(0, 0), 15
  126.     LINE (vertex(level1a).x, vertex(level1a).y)-(vertex(a + 16).x, vertex(a + 16).y), 14
  127.  
  128.     LINE (vertex(a + 8).x, vertex(a + 8).y)-(vertex(level2a).x, vertex(level2a).y), a
  129.     LINE (vertex(a + 8).x, vertex(a + 8).y)-(vertex(level2b).x, vertex(level2b).y), a
  130.  
  131.     LINE (vertex(a + 16).x, vertex(a + 16).y)-(vertex(level3a).x, vertex(level3a).y), a
  132.     LINE (vertex(a + 16).x, vertex(a + 16).y)-(vertex(level3b).x, vertex(level3b).y), a
  133.  
  134.     LINE (vertex(a + 24).x, vertex(a + 24).y)-(vertex(level4a).x, vertex(level4a).y), a
  135.     LINE (vertex(a + 24).x, vertex(a + 24).y)-(vertex(level4b).x, vertex(level4b).y), a
  136.     LINE (vertex(a + 24).x, vertex(a + 24).y)-(vertex(level4c).x, vertex(level4c).y), a
  137.  
  138. '   LINE (vertex(a + 32).x, vertex(a + 32).y)-(vertex(level5a).x, vertex(level5a).y), a
  139. '   LINE (vertex(a + 32).x, vertex(a + 32).y)-(vertex(level5b).x, vertex(level5b).y), a
  140. '   LINE (vertex(a + 32).x, vertex(a + 32).y)-(vertex(level5c).x, vertex(level5c).y), a
  141. '
  142. '   LINE (vertex(a + 32).x, vertex(a + 32).y)-(vertex(level7).x, vertex(level7).y), a
  143. NEXT a
  144.  
  145. 'Bottom Right View
  146.  
  147. FOR a = 1 TO 8
  148.   xoff = 4
  149.  
  150.     level1a = 1 + a MOD 8
  151.     level1b = 1 + (a + 1) MOD 8
  152.  
  153.     level2a = 1 + (a - 1) MOD 8
  154.     level2b = 1 + a MOD 8
  155.  
  156.     level3a = 9 + (a - 1) MOD 8
  157.     level3b = 9 + a MOD 8
  158.  
  159.     level4a = 16 + a
  160.     level4b = 17 + a MOD 8
  161.     level4c = 9 + a MOD 8
  162.  
  163.     level5a = 17 + (a - 1) MOD 8
  164.     level5b = 25 + (a - 1) MOD 8
  165.     level5c = 17 + a MOD 8
  166.  
  167.     level6a = 33 + (a - 1) MOD 8
  168.     level6b = 33 + (a) MOD 8
  169.  
  170.     level7 = 41
  171.  
  172. '  LINE (vertex(level1a).x, vertex(level1a).y)-(vertex(level1b).x, vertex(level1b).y), a
  173. '  LINE (vertex(level1a).x, vertex(level1a).y)-(0, 0), 15
  174. '  LINE (vertex(level1a).x, vertex(level1a).y)-(vertex(a + 16).x, vertex(a + 16).y), 14
  175.  
  176. '  LINE (vertex(a + 8).x, vertex(a + 8).y)-(vertex(level2a).x, vertex(level2a).y), a
  177. '  LINE (vertex(a + 8).x, vertex(a + 8).y)-(vertex(level2b).x, vertex(level2b).y), a
  178.  
  179. '  LINE (vertex(a + 16).x, vertex(a + 16).y)-(vertex(level3a).x, vertex(level3a).y), a
  180. '  LINE (vertex(a + 16).x, vertex(a + 16).y)-(vertex(level3b).x, vertex(level3b).y), a
  181.  
  182.   LINE (xoff + vertex(a + 24).x, vertex(a + 24).y)-(xoff + vertex(level4a).x, vertex(level4a).y), a
  183.   LINE (xoff + vertex(a + 24).x, vertex(a + 24).y)-(xoff + vertex(level4b).x, vertex(level4b).y), a
  184. '  LINE (xoff + vertex(a + 24).x, vertex(a + 24).y)-(xoff + vertex(level4c).x, vertex(level4c).y), a
  185.             
  186.   LINE (xoff + vertex(a + 32).x, vertex(a + 32).y)-(xoff + vertex(level5a).x, vertex(level5a).y), a
  187.   LINE (xoff + vertex(a + 32).x, vertex(a + 32).y)-(xoff + vertex(level5b).x, vertex(level5b).y), a
  188.   LINE (xoff + vertex(a + 32).x, vertex(a + 32).y)-(xoff + vertex(level5c).x, vertex(level5c).y), a
  189.  
  190.   LINE (xoff + vertex(level6a).x, vertex(level6a).y)-(xoff + vertex(level6b).x, vertex(level6b).y), 15
  191.  
  192.   LINE (xoff + vertex(a + 32).x, vertex(a + 32).y)-(xoff + vertex(level7).x, vertex(level7).y), a
  193. NEXT a
  194.  
  195. 'X Side View (left)
  196.  
  197. FOR a = 1 TO 8
  198.      xoff = 0
  199.      zoff = -3
  200.  
  201.     level1a = 1 + a MOD 8
  202.     level1b = 1 + (a + 1) MOD 8
  203.  
  204.     level2a = 1 + (a - 1) MOD 8
  205.     level2b = 1 + a MOD 8
  206.  
  207.     level3a = 9 + (a - 1) MOD 8
  208.     level3b = 9 + a MOD 8
  209.  
  210.     level4a = 16 + a
  211.     level4b = 17 + a MOD 8
  212.     level4c = 9 + a MOD 8
  213.  
  214.     level5a = 17 + (a - 1) MOD 8
  215.     level5b = 25 + (a - 1) MOD 8
  216.     level5c = 17 + a MOD 8
  217.  
  218.     level6a = 33 + (a - 1) MOD 8
  219.     level6b = 33 + (a) MOD 8
  220.  
  221.     level7 = 41
  222.  
  223.     LINE (xoff + vertex(level1a).x, zoff + vertex(level1a).z)-(xoff + vertex(level1b).x, zoff + vertex(level1b).z), a
  224.     LINE (xoff + vertex(level1a).x, zoff + vertex(level1a).z)-(xoff + 0, zoff + 0), 15
  225.     LINE (xoff + vertex(level1a).x, zoff + vertex(level1a).z)-(xoff + vertex(a + 16).x, zoff + vertex(a + 16).z), 14
  226.  
  227.  
  228.     LINE (xoff + vertex(a + 8).x, zoff + vertex(a + 8).z)-(xoff + vertex(level2a).x, zoff + vertex(level2a).z), a
  229.     LINE (xoff + vertex(a + 8).x, zoff + vertex(a + 8).z)-(xoff + vertex(level2b).x, zoff + vertex(level2b).z), a
  230.  
  231.     LINE (xoff + vertex(a + 16).x, zoff + vertex(a + 16).z)-(xoff + vertex(level3a).x, zoff + vertex(level3a).z), a
  232.     LINE (xoff + vertex(a + 16).x, zoff + vertex(a + 16).z)-(xoff + vertex(level3b).x, zoff + vertex(level3b).z), a
  233.  
  234.     LINE (xoff + vertex(a + 24).x, zoff + vertex(a + 24).z)-(xoff + vertex(level4a).x, zoff + vertex(level4a).z), a
  235.     LINE (xoff + vertex(a + 24).x, zoff + vertex(a + 24).z)-(xoff + vertex(level4b).x, zoff + vertex(level4b).z), a
  236.     LINE (xoff + vertex(a + 24).x, zoff + vertex(a + 24).z)-(xoff + vertex(level4c).x, zoff + vertex(level4c).z), a
  237.  
  238.     LINE (xoff + vertex(a + 32).x, zoff + vertex(a + 32).z)-(xoff + vertex(level5a).x, zoff + vertex(level5a).z), a
  239.     LINE (xoff + vertex(a + 32).x, zoff + vertex(a + 32).z)-(xoff + vertex(level5b).x, zoff + vertex(level5b).z), a
  240.     LINE (xoff + vertex(a + 32).x, zoff + vertex(a + 32).z)-(xoff + vertex(level5c).x, zoff + vertex(level5c).z), a
  241.  
  242.   LINE (xoff + vertex(level6a).x, zoff + vertex(level6a).z)-(xoff + vertex(level6b).x, zoff + vertex(level6b).z), 15
  243.  
  244.   LINE (xoff + vertex(a + 32).x, zoff + vertex(a + 32).z)-(xoff + vertex(level7).x, zoff + vertex(level7).z), a
  245. NEXT a
  246.  
  247. 'Y side view (right)
  248.  
  249. FOR a = 1 TO 8
  250.     yoff = 4
  251.     zoff = -3
  252.  
  253.     level1a = 1 + a MOD 8
  254.     level1b = 1 + (a + 1) MOD 8
  255.  
  256.     level2a = 1 + (a - 1) MOD 8
  257.     level2b = 1 + a MOD 8
  258.  
  259.     level3a = 9 + (a - 1) MOD 8
  260.     level3b = 9 + a MOD 8
  261.  
  262.     level4a = 16 + a
  263.     level4b = 17 + a MOD 8
  264.     level4c = 9 + a MOD 8
  265.  
  266.     level5a = 17 + (a - 1) MOD 8
  267.     level5b = 25 + (a - 1) MOD 8
  268.     level5c = 17 + a MOD 8
  269.  
  270.     level6a = 33 + (a - 1) MOD 8
  271.     level6b = 33 + (a) MOD 8
  272.  
  273.     level7 = 41
  274.  
  275.     LINE (yoff + vertex(level1a).y, zoff + vertex(level1a).z)-(yoff + vertex(level1b).y, zoff + vertex(level1b).z), a
  276.     LINE (yoff + vertex(level1a).y, zoff + vertex(level1a).z)-(yoff + 0, zo